TOP-C: A Task-Oriented Parallel C Interface
نویسنده
چکیده
The goal of this work is to simplify parallel applications development, and thus ease the learning barriers faced by non-experts. It is especially useful where there is little data-parallelism to be recognized by a compiler. The applications programmer need learn the intricacies of only one primary subroutine in order to get the full bene ts of the parallel interface. The applications programmer de nes a high level concept, the task, that depends only on his application, and not on any particular parallel library. The task is de ned by its three phases: (a) the task input, (b) sequential code to execute the task, and (c) any modi cations of global variables that occur as a result of the task. In particular, side e ects (which change global variable values) must not occur in phase (b). Forcing the user to re-organize his computation in these terms allows us to present the applications programmer with a single global environment visible to all processors (whether on a SMP or a NOW architecture), in the context of a masterslave architecture. Both a shared memory implementation (running on an SGI or SUN Solaris architecture) and a NOW memory implementation (running on top of MPI) are described. The implementations were tested by a naive program for integer factorization, and by a more sophisticated Todd-Coxeter coset enumeration. Integer factorization was chosen so as to exercise the major features of TOP-C in an unambiguous context. 1 Partially supported by NSF Grant CCR-9509783. 2 Appeared in HPDC-5, 1996, IEEE Press, pp. 141{150
منابع مشابه
Scalable Parallel Implementation of Geant4 Using Commodity Hardware and Task Oriented Parallel C
We describe a scalable parallelization of Geant4 using commodity hardware in a collaborative effort between the College of Computer Science and the Department of Physics at Northeastern University. The system consists of a Beowulf cluster of 32 Pentium II processors with 128 MBytes of memory each, connected via ATM and fast Ethernet. The bulk of the parallelization is done using TOP-C (Task Ori...
متن کاملTOP-C: Task-Oriented Parallel C for Distributed and Shared Memory
The “holy grail” of parallel software systems is a parallel programming language that will be as easy to use as a sequential one, while maintaining most of the potential efficiency of the underlying parallel hardware. TOP-C (Task-Oriented Parallel C) attempts such a model by presenting a task abstraction that hides much of the details of the underlying hardware. DSM (Distributed Shared Memory) ...
متن کاملAn Interface between Object-oriented Systems
The descriptionòbject-oriented' may apply to both programming languages and operating systems. However, creating an interface between an object-oriented programming language and an object-oriented operating system is not necessarily a straightforward task. Chrysalis++ is a C++ interface to the Chrysalis operating system for the BBN Butterry Parallel Processor. The development of Chrysalis++ hig...
متن کاملModelsaz: An Object-Oriented Computer-Aided Modeling Environment
Modeling and simulation of processing plants are widely used in industry. Construction of a mathematical model for a plant is a time-consuming and error-prone task. In light of extensive advancements in computer science (both hardware and software), computers are becoming a necessary instrument in industrial activities. Many software tools for modeling, simulation and optimization of proces...
متن کاملTPO++: An Object-Oriented Message-Passing Library in C++
Message-passing is a well known approach for parallelizing programs. The widely used standard MPI (Message passing interface) also defines C++ bindings. Nevertheless, there is a lack of integration of object-oriented concepts. In this paper, we describe our design of TPO++1, an object-oriented message-passing library written in C++ on top of MPI. Its key features are easy transmission of object...
متن کامل